Knowledge Utilization

ABSTRACT

Data is organized in a knowledge network by defining a set of nodes, each node comprising data describing knowledge and a task pertinent to the knowledge, and defining relationships between the nodes based on the data.

BACKGROUND

This description relates to knowledge utilization.

Electronic data organization has begun to move away from hardware-basedabstractions (such as flat or hierarchical file systems that areaccessed in local area and wide area networks operated by centrallycontrolled entities or on individual machines) to formulations ofknowledge that reflect naturally existing entities in the real world.One wave in that progression has been the World Wide Web (the web). HTML(hypertext markup language) permits flexible exchange of informationwith an emphasis on the display aspects of information. XML (extensiblemarkup language) provides a document description language, that has beenadapted in various representations (governed by different standards) toserve the needs of different application domains.

A body of knowledge that is to shared across multiple domains served bydifferent XML standards is expressed in different shapes or forms in thedifferent domains and must be subjected to complex duplicative andcoalescing processing to keep the shared information consistent.

To make the web more useful, The WWW Consortium (W3C) has developed astandard, known as Semantic Web, to help machines to “understand” ratherthan merely process and distribute data. Semantic Web began as aweb-based language that would model data independently of the domain inwhich it is created or used, enabling new kinds of applications thatspan multiple domains, such as law enforcement, finance, medicine,technology, or sports.

Virtual networks are sometimes built using layer 2 or 3 of the OSInetwork model and electronic media for communication. Virtual machinesuse virtualization of hardware layers to enable more than one operatingenvironment to run at a given time. In databases, information is kept inaccordance with a fixed organizational structure, and retrieved usingqueries built on keys. Web pages are sometimes generated dynamically fora momentary need using scripts or other programs for display purposes.

SUMMARY

In general, in one aspect, a job is enabled to be done using pieces ofknowledge that relate to a domain of human activity and that are storedin respective places each under the control of a system that can performone or more defined tasks with respect to the piece stored there. Thisis done by defining conceptual nodes, each node identifying at least oneof the pieces of knowledge and at least one of the tasks that can beperformed using the piece of knowledge. The pieces and the tasks aredefined using subsets of a common vocabulary associated with the domainof human activity, and the job to be done is expressed in the commonvocabulary and without specifying the location of the pieces ofknowledge needed to perform the job or the tasks to be performed tocomplete the job. The job to be enabled by causing one or more of theconceptual nodes to perform one or more of the tasks on one or more ofthe pieces of information, without requiring storage of copies of thepieces of knowledge anywhere other than the places that are undercontrol of the systems.

Implementations may include one or more of the following features.

Defining the conceptual nodes includes creating a first node andrecording an identification of the at least one piece of knowledge inthe first node and a task that the first node is capable of performing.Creating the first node includes, in the first node, collectingknowledge relevant to the task, establishing an RDF triplet and metadatacharacterizing the first node, providing a server node with theidentification of the knowledge in the first node and the task, andcarrying out the task. In a node, resources are released from the node,metadata is established characterizing the final state of the node, andthe metadata is returned to another node. Performing a task includes, ina routing node, receiving a request that uses a vocabulary that therouting node does not understand, sending the request to a first nodethat understands the vocabulary, and sending any metadata needed tosatisfy the request to the first node. Defining relationships betweenthe nodes includes, in a routing node, receiving a request that uses avocabulary that the routing node does not understand, receiving atranslation of the request's vocabulary from a first node thatunderstands the vocabulary, adding the request's vocabulary to therouting node's vocabulary, and sending the request and any metadataneeded to satisfy the request to a node that includes a taskcorresponding to the request. Performing a task includes, in a routingnode, receiving a request that uses a vocabulary that the routing nodeunderstands, and sending the request and any metadata needed to satisfythe request to a node that includes a task corresponding to the request.

Performing a task includes, in a switch node, receiving a request thatuses a vocabulary that the switch node does not understand, transmittingthe vocabulary to discover a first node that understands the vocabulary,sending the request to the first node, and sending any metadata neededto satisfy the request to the first node. Performing a task includes, ina switch node, receiving a request that uses a vocabulary that theswitch node does not understand, transmitting the vocabulary to discovera first node that understands the vocabulary, receiving a translation ofthe request's vocabulary from the first node, adding the request'svocabulary to the switch node's vocabulary, and sending the request andany metadata needed to satisfy the request to a node that includes atask corresponding to the request. Performing a task includes, in aswitch node, receiving a request that uses a vocabulary that the switchnode understands and sending the request and any metadata needed tosatisfy the request to a first node that includes a task correspondingto the request.

Defining the conceptual nodes includes, in a first node, changing one ormore of the pieces of knowledge and one or more of the tasks identifiedby the first node and communicating the change to a second node. Firstinformation is retrieved from a subset of the conceptual nodes, a secondsubset of the conceptual nodes is identified from the first information,second information is retrieved from the second subset, and the secondinformation is provided to an output process.

The subset of the common vocabulary describing the pieces of knowledgefor a conceptual node includes a pool of metadata nouns and verbsdescribing information. The subset of the common vocabulary describingthe tasks for a conceptual node includes a pool of metadata verbsdescribing actions that the node can perform itself. The subset of thecommon vocabulary describing the tasks for a conceptual node includes apool of metadata verbs describing actions that the conceptual node canperform for other conceptual nodes in the set. The piece of informationfor a first node includes an identification of second nodes with whichthe first node can exchange data. The pieces of knowledge and tasksidentified by a node also describe output of the node.

Other features and advantages will be apparent from the description andfrom the claims.

DESCRIPTION

FIGS. 1-3, 5-6, and 7A are block diagrams of knowledge networks.

FIGS. 4A and 4B are flow charts.

FIG. 7B is a diagram of a node of a knowledge network.

Semantic Web technology can be modified and extended to provide aplatform by which machine awareness can be used to address a user's needfor knowledge and to assemble a chain of knowledge utilization in anautomated fashion.

Here we describe an approach that we call knowledge networks forcombining, utilizing, and synthesizing any kind of knowledge that is orcan be expressed in a machine understandable form. Knowledge networktechnology uses definite expressions to characterize information, flowsof work, and the relationships of entities, among other things.

Knowledge networks are built using metadata that are independent of thedomains in which the data is created, held, or used, and thus arerelevant and can be applied to all domains that involve knowledge.

As shown in FIG. 1, in a knowledge network 16, a need for knowledge 10,which is typically prompted by a user's action 12 (which we alsosometimes call a knowledge need), such as search, compute, buy, sell, orbid, forms a basis for creation of a node 14 in a knowledge network 16(which we also sometimes refer to as a knowledge network system). Aknowledge network node includes a knowledge engine capable of satisfyingan action such as sell, compute, buy, bid, or search. A knowledgenetwork node differs from a file server node or a web server node, orother types of hardware abstraction nodes. For example, there is nohardware address or web address associated with a knowledge network nodeas there is with nodes at certain levels of typical network models. Insome implementations, the knowledge network node would exist entirely atthe seventh, or application, layer in the OSI network model, as definedin the ISO standard 7498-1. Other similar approaches could beimplemented in other network models. A knowledge network node 18 may bedescribed in terms of existing knowledge 22, which may be knowledgesynthesized using existing knowledge, within a knowledge network system16. Each node in a knowledge network is an engine that works towardsatisfying a knowledge need 12. In some examples, when a new node, e.g.,node 14, is created, a set of already-existing peer nodes, that is,nodes with similar roles and properties, such as nodes 15 or 17, isidentified with which the newly created node 14 can communicate.

A knowledge network is thus a transient entity that is composed, not ofphysical nodes and physical connections among them, but of intersections28 of data sets 30 (e.g., knowledge) that exist at one or more physicaldata sources 32. In the example of FIG. 1, node 18 represents theintersection 28 of data in two data sets 30. Node 15 may be amodification of data in node 17, which in turn is the intersection ofnodes 18 and 20. Node 20 represents the intersection of nodes 18, 34,38, and 40. A data set may self-describe its function or purpose. Eachknowledge network node is assembled and disassembled based on theutility of the data sets of that node in serving needs of one or morenetwork users. Because the data sets of a node can remain in theiroriginal physical locations, for example, in a server, and under thephysical control of the owner of the devices on which they are located,a knowledge network node and a knowledge network that contains such anode (a knowledge network can contain one or more nodes that are createdand ended from time to time as needed), provides a powerful conceptualframework for secure and efficient access to information without theneed for establishing new physical repositories of sensitive data. Thisis especially desirable in contexts in which for security or regulatoryreasons, it is important not to replicate the data physically inlocations other than the original locations.

In some examples of applications of Semantic Web, data identification,modeling, access, and flow are facilitated in a way that differs fromXML-based systems in that Semantic Web provides a logical system forbuilding relationships between data located at diverse sources. It isalso possible to use XML to build such relationships, which may differfrom implementation to implementation. Such implementations wouldrequire monitoring for possible fragmentation of the data that mightresemble a current state of hard-wired, conventional data storagenetworks. Such fragmentation may be useful in certain circumstances, andthe degree of fragmentation could be customized for a given knowledgenetwork.

The knowledge network may involve data that is available either in asingle conventional network node or multiple network nodes, e.g., datasources 32. For example, a single knowledge network node 34 can spanmany conventional data systems 36, or numerous knowledge network nodes38, 40 can be based on data located at a single conventional networknode 42. As mentioned earlier, physical network systems may be, forexample, based on the OSI layers; in contrast, the knowledge network insome examples exists on top of the OSI layers or in a similar positionin other network models. Hence, applications and data that belong tolower layers of the OSI model may become building blocks of theknowledge network. Many other network structures are also possible toimplement knowledge networks.

In some examples, data utilized in a knowledge network is represented ina data modeling language, comparable to Resource Description Frameworks(RDFs) in Semantic Web and in contrast to the display markup language ofHTML or the document markup language of XML. An element 44 in aknowledge network is a piece of semantically consistent metadata. Suchan atomic, complete piece of metadata is analogous to a network packetin conventional IP networks, ATM networks, and other similartechnologies. For example, elements in XML are identified by paths,while elements 44 in a knowledge network may include knowledgestatements, properties, and resources 46 and be represented as URIs 48.A knowledge network can be implemented using any metadata model; RDF inSemantic Web is only one example of such a metadata model. A knowledgenetwork can also be implemented using other appropriate metadatalanguages. Various knowledge network functions, such as routing,switching, and masquerading, are possible because data in the knowledgenetwork is accessible in a semantic format.

Access to information in a conventional network typically uses a systemof addresses of nodes in the network. The addresses are represented bynames that are translated into numerical formats before data orapplications are placed into network packets that are then sent to nodeslocated in the network. Networks such as ATM, SONET, Ethernet, orwireless networks, create identities for the nodes that contain names ornumbers in a standardized format. For example, in IP4, IDs areformulated in an X.Y.A.B format, where A, B, Y, and X are all numbers inthe range of 0 through 255, that is, a well-structured, closed, namespace. Networks incorporate the addresses of the source and thedestination nodes as part of the packets that travel among these nodesover communication media such as optical fibers, wireless channels, orcopper wire.

By contrast, as shown in FIG. 2, a knowledge network 50 is not definedby network addresses of physical nodes that host or own data, but by apool 51 of sets 52 of knowledge 54 pertinent to a question or data 56under consideration. The name 60 of a node 62 in a knowledge network isnot static and need not be assigned by a designated administrator orsoftware such as DHCP (as in the case of an IP network, for example).

In a knowledge network, a node that hasn't fully grown to be in acommunity of knowledge network nodes is called an unregistered node.This includes a node that is still under construction or a node forwhich construction is complete but which has not complied withrequirements of the knowledge network server or is in the process ofcomplying with such requirements. Such an unregistered node can comeinto being and simply announce itself, in a limited or unlimited manner,and start living in the network. In order for a node to announce itself,it must have already gone through knowledge server validation. Thisvalidation is done by establishing a complete understanding of the nodethat wants to come into being, by establishing a semantically consistentmetadata vocabulary. In other words, in a knowledge network the namespace is completely open, and can be comprised of any combination ofverbs and nouns (see below) based on the user's need for information orother actions that the user wishes to take with respect to information.A knowledge network server acts as the arbitrator so that no twoknowledge network nodes carry the same name in a semantically consistentmanner, in the context of the knowledge network under consideration.

What connects an individual knowledge network node 62 to a knowledgenetwork server 70 is a set of well-defined vocabularies that havedefinite sets of meanings. The name 60 of a knowledge network node 62 isessentially constructed and announced by the node, not imposed by asupervising system. Therefore, the name 60 of a knowledge network nodeneed not follow a strict structure and may be based solely on known andfamiliar natural language vocabularies. Hence, nodes that pertain todifferent domains such as medical, law enforcement, financial, orbiological fields may come into being using already well-defined sets ofvocabularies that are known to users in those domains.

Based on the nature of a query or combination of queries, or on aproblem selection and its subsequent information needs, or on the natureof an action to be performed, knowledge network nodes can be created andnamed using completely different identification (naming) schemes indifferent domains. For example, a finger print system in a lawenforcement domain and an engine that seeks patient information in amedical domain could use entirely different naming schemes. Although therelationship between knowledge network nodes may change, all the nodeswithin a given knowledge network understand a set of vocabularies thatare immutable. Ownership of the data associated with a node may changeover time. In some implementations, a node in a knowledge network isidentified by one or more nouns 80 and one or more verbs 82 (actionspertinent to these entities) as described below.

When we speak of an identity of a node of a conventional network, wetypically would mean an address corresponding to a physical or logicaldevice, but when we speak of an identity of a knowledge network node, wemean a clause of nouns and verbs that describes, in a vocabularyfamiliar to a domain(s) for which the node is created, what informationis in the node and what the node does. A node may span multiple domains,for example, if it concerns interdisciplinary information, and eachdiscipline defines a separate domain.

Many nodes in a knowledge network are transient. They are created tomeet a specific need for information and are destroyed when the need issatisfied. For example, when a doctor wants to sell his office, he goesto the knowledge network node and collects or feeds in informationrelating to the office and tells the node what he wants, i.e., he wantsto sell. So, in that context a knowledge network node comes into being(or is created by the knowledge network server). The node is made ofdata that the doctor provided and any additional data the system puttogether in a semantically consistent manner. Note that the ‘sell’ nodefor the doctor may exist for five minutes or two years, depending on howlong it takes to sell. In the meantime, the knowledge network node maymutate in ways aimed at satisfying the need to sell. During the lifespan of a knowledge network node, it may, given appropriate permission,change its identity through masquerading or by adding or deletinginformation to or from its identity. When such changes occur, theknowledge network detects the changes and catalogues them. The catalogue88 of such changes for a node may subsequently be used to revert aknowledge network node to any of its previous states. When a knowledgenetwork node is dissolved, the knowledge network server releases allresources associated with the node and dissolves the node from theserver. Note that a node isn't deleted, as there is nothing to delete,the server merely stops binding together the separate pieces of datathat constituted the node.

In contrast to the data managed in a traditional network, in which anetwork ID is assigned to a machine or a virtual server and thenassociated with the data owned by that machine or the server, theknowledge in a knowledge network is owned not only by a node but also bya natural individual or a legal entity or enterprise. For example, whena knowledge network is deployed in a medical domain, the entity owningknowledge nodes in the network can be a patient, a doctor, an insuranceagent, a corporation, a state, a country, or some other entity. In a lawenforcement domain, the entity can be a city government, a stategovernment, the federal government, a law enforcement officer, anattorney, or an individual citizen. Ownership of knowledge nodes in theknowledge network can vary based on the time of the ownership and thestatus of the owner or the data.

As shown in FIG. 3, a single traditional network node 100, 102 maytherefore be related to many knowledge network nodes 104, 106 andvice-versa. A knowledge network yellow pages server 108 may provide aservice to map a knowledge network node to corresponding traditionalnetwork nodes. This type of reference scheme may be implemented byentities described more generally as knowledge network service nodes, ofwhich the yellow pages server 108 is an example.

Just as domain name servers (DNS) help resolve IP addresses on aconventional network, a knowledge network service node serves transientknowledge network nodes. The life span of a service node may varydepending on its functions and charters. For example, unlike a transientnode generated by a specific query, a service node may be created whenthe knowledge network is created and may exist as long as the knowledgenetwork exists. Service nodes 108, 110 may also be specific to certaindomains such as law enforcement 116 (nodes 103-107), patient healthrecord systems 118 (nodes 109, 111, 113, 115), or transportation, orthey may be inter-domain nodes, e.g. service node 112, capable ofunderstanding the metadata of multiple domains. Service nodes may beinserted into a knowledge network at any time, whether or not they wereconceived or included at the time of the knowledge network's initialimplementation.

Nodes can relate to each other through several mechanisms. In someexamples, a node can advertise itself, declaring what it can do. Aknowledge network server or a set of service nodes may keep a catalog ofwhich node can do what. Other nodes may then ask the server which nodesare available that can perform particular tasks. In some examples, anode may directly contact another node. Nodes know the addresses ofother nodes and which nodes are needed to perform a particular task,through the knowledge network server. One example of pseudo code forsuch a knowledge network server is shown below:

Do all initialization; While (forever) { Wait for action; Based onaction, with available knowledge (present in the form of metadata),Create a knowledge network node; catalogue the Details about the node;let the new node run with The available knowledge; Collect status ofdead nodes; } Create_knowledge_network_node (action) { Collect allauthorized knowledge relevant To the action; Start the node - meaningconstruct a web page (in one possible implementation) containing RDFtriplets/meta data; self catalogue the details with the server; Start atthe beginning of task of the action - Which itself may be described inmetadata; } Collect status of dead nodes(action) { Release theresources; Construct a metadata (may be a webpage) Describing thestatus; Return to the server; }

Note that any subset of the above pseudo code may be implemented in C,Java, metadata, C++, etc. The knowledge node server could be implementedas metadata itself.

Nouns describe tangible or intangible things. Verbs describe actionsthat may be performed by nouns. Examples of nouns that may be used toexpress a knowledge network node include, for example, in the context ofa patient records domain, patient, doctor, and procedure. Patient inturn consists of related data that is also nouns and verbs, such as name(noun) and occupation (verb or noun). Procedure could be a verb or anoun. For example, as a noun, it may describe a property of the patient,that is, that he had the procedure. As a verb, it may describe aproperty of the doctor, that is, he can perform the procedure. Wesometimes refer to a noun as possessing the verbs or other nouns thatare associated with it. Typically, a knowledge network node possessescertain verbs that are essential for carrying out the node's intendedfunctions and may also seek other nodes that possess other enablingverbs when charged with specific tasks that it cannot complete itself.

For example, a doctor is treating a patient and decides to consult witha law enforcement domain to see what illegal drugs the patient hastaken. The law enforcement knowledge network node will bring in a wholenew set of vocabularies, which is not available in the medical domain.This may include definitions of crimes, criminal records, and similarinformation. It may also include new information about nouns that werealready in the medical domain. For example, in the medical domain,cocaine may be defined as an anesthetic and possess information aboutits proper medical use (verb), while in the law enforcement domain thecocaine noun possesses information about what quantity a dealer (noun)must posses (verb) to be charged (verb) with trafficking (action—verb;criminal charge—noun).

Relationships between nodes are links established through metadata. Suchmetadata can be a noun (e.g., Jack (node, noun) is Jill's (node, noun)cousin (relationship, noun, part of both Jack and Jill nodes), or a verb(e.g., Dr. Jack (node, noun) operated (relationship, verb, part of Dr.Jack and Jill nodes) on Jill's (node, noun) heart (node, noun, part ofJill node)). Such relationships define semantically well-understoodmeanings and can be established either at the time of a node's creationor at some time later in a node's life span when it needs the abilities,i.e., verbs, or information, i.e., nouns, verbs, and their associations,of another node. In seeking a specialized verb, such as translation ofone data format into another, a node may query all the nodes with whichit can communicate, or it may get the details from a service node. Itchooses the most appropriate node and gives enough information to thatnode, which can be a service node or another transient node, to performthe required function. In any case, this propagation of informationcontinues until the data reaches the node that can perform the task. Ifthe node is unable to find a knowledge network node that can perform thetask, then in one possible implementation, it may map the verb to a‘NO-OP,’ i.e., no-operation or a null operation.

Just as routers and switches switch network packets at variousconceptual network levels (OSI layers), routers and switches may be usedin knowledge networks to switch metadata at a metadata level, namely atthe OSI layer 7 or application layer or may also in even lower layers ofOSI, if need mandates.

Apart from conventional IP and ATM networks, other virtual networks havebeen designed to operate at layer 2 (e.g., 802.11Q), layer 3 (e.g.,virtual LAN), for example. In a knowledge network the medium ismetadata. The network interconnects data at the application layer by theassociation of meta-information.

In a knowledge network, the information is not bound to a fixedorganizational structure although databases may be one type of a sourceof knowledge in a knowledge network. The organizing principle ofinformation in a knowledge network is a well-defined, agreed-upon set ofvocabularies, which are absent from conventional databases. A knowledgenetwork uses data modeling techniques based on these vocabulariess.

In knowledge networks, the knowledge network node may be static ormutating depending on the circumstances. It may express itself in termsof web pages, data bases, binary data or multi-media data. In knowledgenetworks, a node may enlarge its scope of ‘understanding’ by coalescingknowledge through service nodes or consulting with nodes of otherdomains or of the same domain. In a knowledge network, nodes maydiscover new services and vocabularies that are useful on the fly andmay only associate with the ones that are semantically consistent withthe known knowledge. To define syntax in a knowledge network, format andmeaning of the data are announced by the data itself, lending theadvantages of flexibility to the nodes. Semantic web allows alldomain-specific metadata to be defined by specific domains. A givendomain may have multiple sets of metadata vocabularies. Yet it isnatural for the knowledge network to reconcile the sets on the flybecause machine understanding is a fundamental building block ofknowledge networks.

Media of a Knowledge Network

In hardware networks, the network nodes are connected by one or moretangible media such as copper, fiber, or wireless. Knowledge networknodes are connected by metadata, which provide the basic medium ofcommunication. The Semantic Web RDF is one possible way to representsuch metadata. Just as packets or bit streams flow in a conventionalnetwork over a medium, in a knowledge network, bit streams flow in thecontext of metadata. A piece of metadata, while in transmission, istherefore an atomic element in a knowledge network. Just as aconventional network cannot work without the functioning of the medium,a knowledge network cannot function without understandable metadataflow. For example, a knowledge network node created by a doctor to findall the details of a particular patient may live for a few moments ordays or weeks or years. During its lifetime, the node may communicatewith the patient's knowledge network node. This communication mayinclude contacting the patient's phone, PDA, computer, GPS devices orother computing devices, and may even include sending faxes or papermail to the patient. The doctor's node uses metadata it already hasaccess to about the patient, like his phone number, to transmit data tothe phone and request whatever information the phone might have that isrelevant to the doctor's node's purpose. When the doctor's nodecommunicates with the patient's, it may bring in new understanding ofthe patient's condition. The new understanding is entirely metadata thathas well defined meanings

Knowledge Network Functions

Various functions such as routing, switching, translating, andreflecting are defined and executed using data modeling basics similarto those of Semantic Web (e.g., RDF). Like the data and control packetsin a traditional network, the metadata defining nodes in knowledgenetwork may also be routed, switched, and translated. A node inknowledge networks is somewhat analogous to a website, though not aperfect analog. Any piece of metadata that has well-defined meaning andis machine-understandable, expressed in full and conforming to knownsemantics, is equivalent to a transmitted network packet.

In conventional networks, data sent from one program to another over thenetwork may span one or many network packets. Similarly, in a knowledgenetwork communication between two nodes may involve a single piece ofmetadata or many. In a knowledge network, a node may create a clone ofitself and modify this clone to facilitate communication with otherknowledge network nodes. In some instances, the node may not create aclone, but may modify itself, thereby changing its identity for all orsome portion of its life span. This has some similarity to a mobileagent, that is, an executable entity that can ‘move’ in a physical orlogical sense from one computer to another. Knowledge network nodes maybe implemented conceptually as mobile agents. However, they aredifferent in that conventional mobile agents do not necessarily workwith a flexible machine-understandable metadata mechanism, but throughthe conventional programming/web paradigm.

A knowledge network node may contain data that are either modifiable,read-only, or private. The knowledge network may perform functions bychanging the logical relationships of various data or by modifying theinformation contained in the node. For example, Dr. Jack operates onJill. After a while, it so happens Jill is a dentist, and is doing somedental work on Dr. Jack. Even though Dr. Jack's knowledge network noderelates to Jill's node as doctor and patient, it gets reversed whileJill works on Dr. Jack. One verb, i.e., Jill ‘doing dental work’ on Dr.Jack changes the relationship. As a result, the accessibility ofinformation and understanding of information in the new context willchange.

Routing and Switching

The mechanisms of routing and switching in a knowledge network utilizemetadata functions such as synonyms, antonyms, etc. The relationship ofthese mechanisms is described using metadata statements that conform toa metadata language such as XML and Semantic Web.

Conventional networking switches switch a networking packet from onesubnet to another. Typically, a networking switch also translates thenetwork addresses, depending on the need. In a knowledge network, arouter or switch also does two things: it searches for and finds arequired metadata vocabulary, and it translates the data from onevocabulary to another vocabulary.

An example implementation in pseudo-code for a switch is as follows, butother implementations are also possible:

While forever { Do If (no requests pending) Continue looping; If (therequest is valid) { If (do not understand the vocabulary) { Search whichKN node understands the vocabulary by sending same vocabulary from thepacket; Send the request to the KN node that can translate thevocabulary into what we can understand or augment the vocabularyexpanding our innate understanding of vocabulary; Route any othermetadata that are needed to satisfy the request; } else { Route anyother metadata that are needed to satisfy the request; } } else { Returnerror; } }

The requests can come in from a URI. The switch makes use of a metadatarouter. Even though search itself is a separate function, in thisexample search+translation+coalescing constitutes switching. An exampleswitch process 400 is shown in FIG. 4A. A request 402 is received andevaluated 404 for validity. If it is valid, the switch determines 406whether it understands the vocabulary of the request 402. If it does, itidentifies 408 another node having the appropriate action for satisfyingthe request and sends 410 the request and any related metadata to theidentified node. If the switch does not have the proper vocabulary, itsends 412 the vocabulary of the request 402 onto the knowledge networkto identify 414 a node that does understand the vocabulary of therequest 402. Once that node is identified 414, the request and metadataare sent to it 410.

The difference between a knowledge network router and a knowledgenetwork switch is that a router doesn't perform any vocabularytranslation. A metadata software router does the job of coalescingmetadata and at the moment of routing it knows where the vocabulariesare located in the knowledge network. Translation of vocabulariesdoesn't happen in routing, thus routing is search+coalescing, withoutthe translation. An example routing process 420 is shown in FIG. 4B. Theprocess reuses many elements from process 400, but in a modified order.The request 402 is received and evaluated 404 for validity. If it isvalid, the router determines 406 whether it understands the vocabularyas did the switch in process 400, and if it does it similarly identifies408 a node having the appropriate action and sends the request 402 andmetadata to that node. If the router does not understand the vocabularyof the request, it sends 412 the vocabulary to the network andidentifies 414 a node that does understand it, but instead of sendingthe request to that node, the router receives 416 the vocabulary itselfso that it can identify 408 a node having the needed action.

An example implementation in pseudo-code for routing is as follows, butother implementations are also possible:

While forever { Do If (no requests pending) Continue looping; If (therequest is valid) { If (do not understand the vocabulary) { Send therequest to the KN node that can translate the vocabulary into what wecan understand or augment the vocabulary expanding our innateunderstanding of vocabulary; Route any other metadata that are needed tosatisfy the request; } else { Route any other metadata that are neededto satisfy the request; } } else { Return error; } }

Translation or Masquerading

A knowledge network node may change its own characteristics, in contrastto the modification of data or control packets, which is done byexternal agents or algorithms in a conventional network. For example, ina medical knowledge network the self-changing of a node is important forretrieval of information regarding a patient whose data may be recorded,intentionally or unintentionally, under different names. During anoperation, the knowledge network system can change some aspects of thenode either permanently or for a defined period of time, depending uponthe need. This could be implemented with the function defined in thefollowing pseudo code:

Masquerade (KNnode, what to masquerade & how to masquerade list...) {Switch (based on how to masquerade ) { Case TABLE_TRANSLATION: Do simpletable-based translation; Case ALGORITHMIC_BASED_MASQUERADE: Call thecorresponding algorithm; // many more such cases are possible inmasquerading. Default: Do nothing; no masquerading; } }

Implementation of a Knowledge Network

There are many possible implementations of knowledge networks.

As shown in FIG. 5, in some examples, a knowledge network 130 mayoperate to automatically generate vocabularies 134 from existingdocuments 136 and feed the vocabularies into a single pre-builtintelligent agent (IA) 138. Such an agent could run on a dedicatedoperating system. These IAs would tend to be complex, and the collectionof such vocabularies would preferably be a continual process. In someimplementations, each IA would be associated with a single domain ormultiple domains.

An IA can represent a workflow thread 142 that can be implemented as aprogram (written in metadata, Java, C, C++, or any programminglanguage), or it can represent a workflow that is described in metadataand that can be run either as-is using an interpreter or translated torun directly on hardware. IAs may communicate with a knowledge networkserver 144 in order to interact with the nodes 145-149 of the knowledgenetwork.

There are many ways IAs can be implemented. The following pseudo codeshows one example application. This example IA collects the prescriptiondrugs taken by a patient based on his past history.

Get-all-patient-drugs (KNnode of patient) { Get all places the patientlived, worked, Visited, and hospitals; Get the list of all pharmacies inall The places where the patient has been; query the pharmacies for thedrugs bought by the patient; return the drug list; }

The above example IA 138 may get the drug list 150 over a period of aweek or so. In the meantime, a result page 152 corresponding to the IA138, which itself is a metadata web page, will continually undergochanges until the IA 138 completes its job and completes the list 150.

In some examples, vocabulary-generating software may work with a set ofIAs. The complexity of such software, and therefore the difficulty tomaintain the software, would be increased, particularly if targeted formore than one domain.

In some examples, as shown in FIG. 6, a metadata-gathering tool 160gathers data 162 from text, binary data, databases, or multimedia input.The tool may store the metadata information in binary, text, a database,or multimedia. The metadata gathered by the tool may be used by anothertool 164 that produces an IA 166. IAs can run on their own as individualprograms.

In some examples, the tool 160 that gathers data and stores the metadatainformation from and to text, binary, databases, and multimedia can alsobe an integrated development environment (IDE) for IAs. This tool 160may help an IA developer output IAs 166 that may run on systems 168,which may run any common operating system, e.g., Windows, Linux,Solaris. The tool may also help an IA developer output IAs that run onapplication servers to leverage security, reliability and load balancingmechanisms built into application servers.

An Example of a Knowledge Network Implementation: Meeting Modern Needsfor More Flexible Data Management

In some examples, knowledge networks provide a useful mechanism forexchange and management of patient information for which conventionalreal-time database queries, identification of diverse patient datalocations, data collection from diverse sources with varying or no datastructures, analysis and synthesis of this diverse data based on thequery posed, and meaningful presentation of the resulting information tothe user are all functions that would be useful to perform but areconstrained by the diversity of the sources, the disparity or lack ofdata definitions, and significantly by privacy and security constraintson storage of copies of patient information.

As shown in FIG. 7A, a knowledge network 170 used to address this domainhas a structure that is transient and comprised not of physical nodesbut of nodes corresponding to intersections 172, 186, 188 of data sets174 compiled from one or more sources 176. These data sets mayself-describe what they can do. These nodes may self-assemble or may beassembled by the knowledge network server 178 and then dissolve based onthe utility of the data to network users. This concept of a knowledgenetwork provides a framework for secure and efficient access toinformation without the need for establishing new repositories ofsensitive data, but using the data from where it resides already.

For example, within the medical example featured above, a request 180 isissued by a user 182 to compile a patient's 184 complete medical recordfrom pieces 186, 188 of the record located at and under the control of avariety of computer systems 176. This request is completed withouthaving to fetch the pieces 186, 188 and store copies of them in oneplace (in violation of security and privacy requirements). The request180 triggers the knowledge network 170 to create the transient querynode 185. The newly created node is characterized by the details 190(e.g., patient name) given as part of the request by the user 182 whoinitiated the query. The knowledge network server 178 also cataloguesother nodes 192, 194 as they come into existence at the request of thequery node 172.

In some examples, medical knowledge network nodes use a metadata schemeto describe themselves to other nodes in the knowledge network. As shownin FIG. 7B, the components of a newly created knowledge network node mayinclude the following. The node details 190 comprise a pool 200 ofmetadata nouns 202 and verbs 204 that describe the node's 172 identityin terms of the details of the patient 184, the user who initiated thequery 182, what kinds of information 206, 188 are requested, knowndetails 208 of the patient, permissions 210 given by the patient to hisdoctor and to the network 170, and other context-sensitive details 212related to drugs, treatment protocols. Metadata verbs 204 describefunctions that the node can perform for itself or for other nodes in theknowledge network. A description 206 of the output of a node is includedin a node's definition. Some knowledge network nodes may be designed notto return anything to the user, but instead to perform certain functionswithin the network.

Even though a knowledge network node has many details about itself, asubset 220 of this information can be used to uniquely identify it.There may also be several subsets of the information through which aknowledge network node can be identified uniquely in the system.

The knowledge network nodes created with the above characteristics havea life of their own. They can dictate what they do, like a process in anoperating system, but within the framework of knowledge networks. Insome embodiments, a knowledge network node can be kept as a UniformResource Locator (URL, a type of Uniform Resource Identifier or URI)that contains all the details of that node. A node comes into existenceupon invocation of a function by the user, such as search, propagate,bid, sell etc. The knowledge network nodes interact with IAs toaccomplish specific work. A knowledge network is created by a knowledgenetwork server, and users do not need to create the knowledge networksthemselves. The act of invoking a function in a knowledge networktriggers the creation of a knowledge network node. A knowledge networkmaintains a list of IAs and makes use of a particular set of IAs torespond to a given metadata query. A knowledge network can also accessIAs in other knowledge networks through metadata queries. RDF queriesare an example of such metadata queries. Details regarding RDFs and RDFqueries can be found at the website of the World-Wide Web Consortium(W3C).

In the implementation described above, the IDE is a tool for knowledgegathering and IA development. The tool is capable of maintaining areservoir of knowledge in many forms, e.g., text, binary, databases,multimedia. Using the knowledge, IA developers can build IAs of varyingfunctionalities and complexities. For example, IAs can be developed tosolve particular user needs, such as the identification, retrieval andorganization of a patient's past medical data from many diverse andotherwise incompatible databases. Note that an IA developer using theIDE can add new knowledge, develop IAs from scratch, or use existing IAsas building blocks. The IDE can be implemented as a software tool usingJava, C or C++ or any other programming language. Another tool that canbe used to implement the IDE is the freeware Eclipse Plug-in fromEclipse.org. The IDE may be text-based, in some examples working in manydifferent human languages such as Chinese, French, English, Hindi, etc.,or it may have a graphical user interface (GUI). The metadata vocabularyis shared between the IDE and the knowledge network, and between theknowledge network nodes and the IAs.

An IA developed using the IDE can be deployed as an individual programor as an application on an application server. In the implementation ofFIGS. 7A and 7B, IAs run as applications on a software layer called theknowledge network layer. This knowledge network layer is a softwarelayer deployed on application servers that facilitates creation,maintenance, and destruction of IAs, as well as communication among IAsand their input/output. A knowledge network itself can be implementedeither based on flexible metadata as described above or as a staticsoftware application.

When a knowledge network function is invoked by a user, the knowledgenetwork server builds a knowledge network node. The newly createdknowledge network node exists only as long as it takes to complete therequested function. In this example, a knowledge network node isanalogous to an XML-based RDF document. It acts as the nerve center toaccomplish its specified functionality using resources including IAs,the knowledge network vocabulary, and knowledge network servercapabilities.

In some examples, the knowledge network server (described as a “HealthServer” given the medical domain) is a combination of an off the shelfapplication server, the knowledge network layer (consisting of knowledgenetwork vocabularies and IAs), and knowledge network nodes. Theknowledge network layer uses an application server for load balancing,security, reliability, and availability. In addition, the IDE is wellintegrated into the functionalities of the knowledge network server sothat they function in tandem.

An important element of a knowledge network is a system capable ofdescribing data, i.e., metadata. Technologies such as databases, markuplanguages such as SGML, HTML, XML, and RDF are examples of such systems.Semantic web has been used to illustrate the concepts described above,but these concepts are not limited to semantic web. A programmer canimplement a knowledge network independently of the metadata system usedas long as the system is capable of some form of metadatarepresentation. A knowledge network can be implemented in a systemcomposed entirely of data by building a layer capable of describing thedata. Such an implementation would not be dependent on markup languagesor databases. For example, a data-only implementation could use a binarydata-based proprietary system to implement such a data-describing layer.

Other embodiments are within the scope of the following claims.

1. A method comprising: defining conceptual nodes, each node identifying at least one piece of knowledge located in a place and at least one task that can be performed, by a system that controls the place, using the piece of knowledge, the piece of knowledge and the task being expressed by natural language words of a vocabulary that is associated with a specific domain of human activity, expressing a job to be done using natural language words of the vocabulary, without requiring a specification of (a) the places where pieces of knowledge needed to perform the job are located, or (b) tasks to be performed to complete the job, and enabling the job to be done by identifying one or more of the conceptual nodes that are able (c) to understand natural language words expressed in the job and (d) to perform one or more of the tasks on one or more of the pieces of information to complete the job, without requiring copies of the pieces of knowledge to be stored anywhere other than the places.
 2. The method of claim 1 in which defining the conceptual nodes comprises: creating a first node, and recording an identification of the at least one piece of knowledge in the first node and a task that the first node is capable of performing.
 3. The method of claim 2 in which creating the first node comprises: in the first node, collecting knowledge relevant to the task, establishing an RDF triplet and metadata characterizing the first node, providing a server node with the identification of the knowledge in the first node and the task, and carrying out the task.
 4. The method of claim 1 also comprising: in a node, releasing resources from the node, establishing metadata characterizing the final state of the node, and returning the metadata to another node.
 5. The method of claim 1 in which performing a task comprises: in a routing node, receiving a request that uses a vocabulary that the routing node does not understand, sending the request to a first node that understands the vocabulary, and sending any metadata needed to satisfy the request to the first node.
 6. The method of claim 1 in which defining relationships between the nodes comprises: in a routing node, receiving a request that uses a vocabulary that the routing node does not understand, receiving a translation of the request's vocabulary from a first node that understands the vocabulary, adding the request's vocabulary to the routing node's vocabulary, and sending the request and any metadata needed to satisfy the request to a node that includes a task corresponding to the request.
 7. The method of claim 1 in which performing a task comprises: in a routing node, receiving a request that uses a vocabulary that the routing node understands, and sending the request and any metadata needed to satisfy the request to a node that includes a task corresponding to the request.
 8. The method of claim 1 in which performing a task comprises: in a switch node, receiving a request that uses a vocabulary that the switch node does not understand, transmitting the vocabulary to discover a first node that understands the vocabulary, sending the request to the first node, and sending any metadata needed to satisfy the request to the first node.
 9. The method of claim 1 in which performing a task comprises: in a switch node, receiving a request that uses a vocabulary that the switch node does not understand, transmitting the vocabulary to discover a first node that understands the vocabulary, receiving a translation of the request's vocabulary from the first node, adding the request's vocabulary to the switch node's vocabulary, and sending the request and any metadata needed to satisfy the request to a node that includes a task corresponding to the request.
 10. The method of claim 1 in which performing a task comprises: in a switch node, receiving a request that uses a vocabulary that the switch node understands, and sending the request and any metadata needed to satisfy the request to a first node that includes a task corresponding to the request.
 11. The method of claim 1 in which defining the conceptual nodes includes: in a first node changing one or more of the pieces of knowledge and one or more of the tasks identified by the first node, and communicating the change to a second node.
 12. The method of claim 1 further comprising: retrieving first information from a subset of the conceptual nodes, from the first information, identifying a second subset of the conceptual nodes, retrieving second information from the second subset, and providing the second information to an output process.
 13. The method of claim 1 in which the natural language words of the common vocabulary comprises a pool of metadata nouns and verbs describing information.
 14. The method of claim 1 in which the natural language words of the common vocabulary describing the tasks for a conceptual node comprise a pool of metadata verbs describing actions that the node can perform itself.
 15. The method of claim 1 in which the natural language words of the common vocabulary describing the tasks for a conceptual node comprise a pool of metadata verbs describing actions that the conceptual node can perform for other conceptual nodes.
 16. The method of claim 1 in which the piece of information for a first node comprises an identification of second nodes with which the first node can exchange data.
 17. The method of claim 1 in which the pieces of knowledge and tasks identified by a node also describe output of the node. 